package icrts.utils;


public abstract class MultiDimensionalComparer<T>
        implements IMultiDimensionalComparer<T>{

    private MultiDimensionalComparer<T> s_comparer;
    public MultiDimensionalComparer() { }

    /**
     * Gets the default comparer for the generic type.
     * @return default comparer.
     */
    public MultiDimensionalComparer<T> getDefault() {
	if(this.s_comparer == null)
            this.s_comparer = createComparer();
	return s_comparer;
    }
    /**
     * Creates a multi-dimensional comperer from a multi-dimensional comparison delegate.
     * @param comparison
     * @return the comparer
     */
/*    public MultiDimensionalComparer<T>
        createFromComparison(MultiDimensionalComparison<T> comparison) {
        return new MultiDimensionalDelegateComparer<T>(comparison);
    }
*/

    public MultiDimensionalComparer<T> createComparer() {
        return null;
    }

}
